package com.yc.feign;


import com.yc.web.bean.ResponseResult;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;

@FeignClient(name = "service-IdGenerate",path = "/id")  //feign客户端 值就是想要远程调用的微服务名字 feign自己会给services-hello发送请求，当然services-hello在哪 feign自己连上注册中心去找到地址而且负载均衡地挑一个
public interface IdGenerateFeignClient {
    //mvc注解的两套使用逻辑：①在controller层是接受请求  ②在feignclient上是发送请求
    /**
     * 生成一个ID
     */
    @RequestMapping("/next")
    ResponseResult generateId();

    /**
     * 批量生成ID
     */
    @GetMapping("/batch")
    ResponseResult getBatchIds(@RequestParam(value = "size", defaultValue = "10") int size);

    /**
     * 根据ID解析出时间戳
     */
    @GetMapping("/parse/time")
    ResponseResult parseTime(@RequestParam("id") long id);

    /**
     * 根据ID解析出数据中心ID
     */
    @GetMapping("/parse/datacenter")
    ResponseResult parseDatacenter(@RequestParam("id") long id);

    /**
     * 根据ID解析出工作机器ID
     */
    @GetMapping("/parse/worker")
    ResponseResult parseWorker(@RequestParam("id") long id);
}
